/**
 * 写一个函数 mapArray，函数接收两个参数
 * arr: 是一个数组
 * fn: 是一个函数
 * 功能要求：实现 mapArray 函数，可以将入参数组 arr 的每一项交给 fn 函数去执行，得到一个新的数组元素
 * mapArray 最终返回一个新的数组
 * 
 * 要求：不能使用数组原型的方法
 * 
 * 用例1：
 * 入参 arr = [1, 2, 3, 4]，fn = item => item + 1 时
 * 执行 mapArray(arr, fn) 后输出的数组为 [2, 3, 4, 5]
 */
function mapArray(arr = [], fn) {
  // ???
}

/**
 * 写一个函数 filterArray，函数接收两个参数
 * arr: 是一个数组
 * fn: 是一个函数
 * 功能要求：实现 filterArray 函数，可以将入参数组 arr 的每一项交给 fn 函数去做判断，
 * filterArray 最终返回一个新的数组，但满足下面的条件：
 * 当 fn 对数组的项判断为 true，那么数组的这一项就加到返回值数组中，否则不加入
 * 如果没有满足 fn 条件的数组元素，那么 filterArray 最终就返回空一个数组
 * 
 * 要求：不能使用数组原型的方法
 * 
 * 用例1：
 * 入参 arr = [1, 2, 3, 4]，fn = item => item % 2 时
 * 执行 filterArray(arr, fn) 后输出的数组为 [1, 3]
 */
function filterArray(arr = [], fn) {

}

/**
 * 写一个函数 someArray，函数接收两个参数
 * arr: 是一个数组
 * fn: 是一个函数
 * 功能要求：实现 someArray 函数，可以将入参数组 arr 的每一项交给 fn 函数去做判断，
 * 当有任意一项数组元素被 fn 判断为 true 时，someArray 函数就返回 true ，否则返回 false
 * 
 * 要求：不能使用数组原型的方法
 * 
 * 用例1：
 * 入参 arr = [1, 2, 3, 'hello', 4, 0]，fn = item => typeof item === 'string'  时
 * 执行 someArray(arr, fn) 后输出 true
 * 
 * 用例2：
 * 入参 arr = [ 0, 1, 2, 3, 4 ]，fn = item => item > 5  时
 * 执行 someArray(arr, fn) 后输出 false
 */
function someArray(arr = [], fn) {

}
